package iit.projects.etaxi.model.service;

import iit.projects.etaxi.model.dto.ReservationSCDO;
import iit.projects.etaxi.model.entity.Driver;
import iit.projects.etaxi.model.entity.Reservation;
import iit.projects.etaxi.model.exception.DuplicateReservationException;
import iit.projects.etaxi.model.exception.DuplicateSequenceException;
import iit.projects.etaxi.model.exception.ReservationNotFoundException;

import java.util.List;

public interface ReservationService {
	
	public Reservation createReservation(Reservation reservation) throws DuplicateReservationException,
															      DuplicateSequenceException;
	
	public Reservation findByCode(String code) throws ReservationNotFoundException;
	
	public void processReservations();
	
	public List<Reservation> searchReservations(ReservationSCDO reservationSCDO);
	
	public Reservation updateReservation(Reservation reservation);
	
	public Reservation requestDriverForReservation(Reservation reservation, Driver driver);
	
	public void processNoReplySms();
	
}
